import axios from "axios";
import {ElMessage} from "element-plus";
import $cookie from "vue-cookies";

/// 1 设置根路径
// 指定超时时间为 5秒=5000毫秒
// 指定请求头中编码格式 application/json
const request = axios.create({
    // baseURL: 'http://localhost:8000/api/v1/',
    baseURL: 'http://121.43.173.128:8000/api/v1/',
    timeout: 5000,
    headers: {'Content-Type': 'application/json;charset=utf-8'}
})

// 2 请求拦截器中取出 token，如果token存在就携带，不存在就不带
request.interceptors.request.use((config) => {
    // 从 localStorage中获取token，如果存在就携带
    // let token = localStorage.getItem('token')
    let token = $cookie.get('token')
    // token 是公共参数，如果用户登录了需要携带
    if (token) {
        config.headers.Authorization = 'Bearer ' + token
    }
    return config
})

// 3 响应拦截器：只要状态码不是100，就弹错误信息
request.interceptors.response.use(
    response => {
        let res = response.data
        if (res.code === 100) {
            ElMessage({
                type: 'success',
                message: res.msg
            })
            return response.data
        } else {
            ElMessage({
                type: 'error',
                message: !res.msg ? '请求服务异常，请联系客服' : res.msg
            })
            return Promise.reject(response.data.msg)
        }
    },
    error => {
        ElMessage({
            type: 'error',
            message: '服务器异常，请稍后再试'
        })
        return Promise.reject(new Error(error.message))
    }
)
export default request;